<?php
namespace app\index\controller;

// use think\facade\Request;//导入请求对象的静态代理
use think\Request;
use think\Controller;
/*
	正常情况下，控制器不依赖父类的Controller.php

	推荐继承父类，可以很方便的使用父类中封装好的一些方法和属性

	controller.php没有静态代理

	如果输出的是复杂类型，我们可以使用dump()函数

	默认输出格式HTML，可以指定为其它格式：json
 */
 
 /*
 	1、传统的new Request
 	2、静态代理：think\facade\Request
 	3、依赖注入：Request $request
 	4、父类的controller中的属性$request:$this->request
  */

 
class Demo3 extends Controller
{
	public function test()
	{
		// 1、传统
		/*
			$re=new Request();
			dump($re->get());
		*/
	
		// 2、静态代理
		// 引入use think\facade\Request代理，并不要引入use think\Request真身，两者冲突
		// 创建一个请求对象Request的静态代理
		// dump(Request::get());

		// 3、依赖注入
		// 先引入真身use think\Request，在本函数test(Request $request)
		// dump($request->get());

		// 4、父类controller中的属性$request
		dump($this->request->get());
	}

}


// 创建和运用静态代理的流程理解
// 1、创建静态代理类名为Test，引入并继承 use think\facade，创建getFacadeClass()函数，返回要代理的类te，如return '\app\common\te'

// 2、引入代理类，直接使用代理类来调用被代理类的方法如
// Test::hello('参数')

